// Create innerHeight, innerWidth, outerHeight and outerWidth methods
jQuery.each(["Height", "Width"], function(i, name) {

	var tl = i ? "Left" : "Top", // top or left
		br = i ? "Right" : "Bottom"; // bottom or right

		// innerHeight and innerWidth
		jQuery.fn["inner" + name] = function() {
			return this[name.toLowerCase()]() + num(this, "padding" + tl)
					+ num(this, "padding" + br);
		};

		// outerHeight and outerWidth
		jQuery.fn["outer" + name] = function(margin) {
			return this["inner" + name]()
					+ num(this, "border" + tl + "Width")
					+ num(this, "border" + br + "Width")
					+ (margin ? num(this, "margin" + tl)
							+ num(this, "margin" + br) : 0);
		};

	});